iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
0
Software Development

從零開始的Python練成記系列 第 10

[Day 10]一次堆放多筆資料的陣列還可以這樣用?!

  • 分享至 

  • xImage
  •  

其實,不得不說自己忘記說明有關陣列的用法了

陣列一次可以用來堆放多筆資料,這必然是大家都了解的用途,而如果有比較深入去了解的人,就會知道它其實還可以做更進一階的操作:二維陣列,而二維陣列的用途就像是一個類似在進行比較物品的表格,好比在比較多個電腦型號的時候,它的硬體配置、實際效能、價錢、網路評價...等的項目,那麼就開始實際操作吧!

Demo資料包含以下四個分類(有依順序排列):
產品編號(Serial_num):nac149ac, nac149xc, mes177hc, mes177hxc
產品顯示卡(Garphic_card):NVMX130, NVMX150, NVGTX1070, NVGTX1080
實際效能定位(Actual_effect):NB, NB, BES, AES
價錢(Price):18900, 21950, 37990, 45900

就先「以資料類別進行堆疊」的方式進行陣列編排並執行print方法輸出各產品資料:

serial_num = ["nac149ac", "nac149xc", "mes177hc", "mes177hxc"]
graphic_card = ["NVMX130", "NVMX150", "NVGTX1070", "NVGTX1080"]
actual_effect = ["NB", "NB", "BES", "AES"]
price = [18900, 21950, 37990, 45900]
                                                               
def print_compare(sel, graph, actual, cost):
    for comparsion in range(len(sel)):
        print(str(sel[comparsion]), end=' ')
        print(graph[comparsion], end=' ')
        print(actual[comparsion], end=' ')
        print(cost[comparsion])
print_compare(serial_num, graphic_card, actual_effect, price)

執行結果如下:

nac149ac NVMX130 NB 18900
nac149xc NVMX150 NB 21950
mes177hc NVGTX1070 BES 37990
mes177hxc NVGTX1080 AES 45900

這個執行結果確實符合預期,但是,接下來就是要來講一下在Python裡面比較特別的地方,也就是目錄式存放資料的複合陣列,那廢話不多說,就直接操作吧:

serial_num = ["nac149ac", "nac149xc", "mes177hc", "mes177hxc"]
pc = {
#key = serial_num 的方式進行編排,並針對key來把資料完整歸納為統一格式
     "nac149ac": ["NVMX130", "NB", 18900],
     "nac149xc": ["NVMX150", "NB", 21950],
     "mes177hc": ["NVGTX1070", "BES", 37990],
     "mes177hxc":["NVGTX1080", "AES", 45900]
}
def print_sigdata(info):
    for code in range(len(info)): 
        print(info[code])
        #先要求印出型號
        print(pc[str(info[code])])
        #再要求印出該型號的詳細資料
print_sigdata(serial_num)

一樣來看看輸出結果:

nac149ac
['NVMX130', 'NB', 18900]
nac149xc
['NVMX150', 'NB', 21950]
mes177hc
['NVGTX1070', 'BES', 37990]
mes177hxc
['NVGTX1080', 'AES', 45900]

如果仔細比較一下的話,就會發現在下方的這個方法會是透過一個set來存放一堆的list,而上方的則是純粹用多個list來存放資料,並沒有以key的方式來進行編排
這絕對不是在秀技術


上一篇
[Day 9]不是不習慣,是這個工具太人性化
下一篇
[Day 11]小型題材:Bubble Sort in Python
系列文
從零開始的Python練成記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言